<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>create_bead_inspection_model [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_inspection.html">Inspection</a> / <a href="toc_inspection_beadinspection.html">Bead Inspection</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">create_bead_inspection_model</span><span data-if="c" style="display:none;">T_create_bead_inspection_model</span><span data-if="cpp" style="display:none;">CreateBeadInspectionModel</span><span data-if="dotnet" style="display:none;">CreateBeadInspectionModel</span><span data-if="python" style="display:none;">create_bead_inspection_model</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">create_bead_inspection_model</span><span data-if="c" style="display:none;">T_create_bead_inspection_model</span><span data-if="cpp" style="display:none;">CreateBeadInspectionModel</span><span data-if="dotnet" style="display:none;">CreateBeadInspectionModel</span><span data-if="python" style="display:none;">create_bead_inspection_model</span></code> — Create a model to inspect beads or adhesive in images.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>create_bead_inspection_model</b>(<a href="#BeadContour"><i>BeadContour</i></a> :  : <a href="#TargetThickness"><i>TargetThickness</i></a>, <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, <a href="#PositionTolerance"><i>PositionTolerance</i></a>, <a href="#Polarity"><i>Polarity</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : <a href="#BeadInspectionModel"><i>BeadInspectionModel</i></a>)</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_create_bead_inspection_model</b>(const Hobject <a href="#BeadContour"><i>BeadContour</i></a>, const Htuple <a href="#TargetThickness"><i>TargetThickness</i></a>, const Htuple <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, const Htuple <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const Htuple <a href="#Polarity"><i>Polarity</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>, Htuple* <a href="#BeadInspectionModel"><i>BeadInspectionModel</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>CreateBeadInspectionModel</b>(const HObject&amp; <a href="#BeadContour"><i>BeadContour</i></a>, const HTuple&amp; <a href="#TargetThickness"><i>TargetThickness</i></a>, const HTuple&amp; <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, const HTuple&amp; <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HTuple&amp; <a href="#Polarity"><i>Polarity</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>, HTuple* <a href="#BeadInspectionModel"><i>BeadInspectionModel</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>HBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, const HTuple&amp; <a href="#TargetThickness"><i>TargetThickness</i></a>, const HTuple&amp; <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, const HTuple&amp; <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HString&amp; <a href="#Polarity"><i>Polarity</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>HBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HString&amp; <a href="#Polarity"><i>Polarity</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>HBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const char* <a href="#Polarity"><i>Polarity</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>HBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const wchar_t* <a href="#Polarity"><i>Polarity</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>CreateBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, const HTuple&amp; <a href="#TargetThickness"><i>TargetThickness</i></a>, const HTuple&amp; <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, const HTuple&amp; <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HString&amp; <a href="#Polarity"><i>Polarity</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>CreateBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const HString&amp; <a href="#Polarity"><i>Polarity</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>CreateBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const char* <a href="#Polarity"><i>Polarity</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>::<b>CreateBeadInspectionModel</b>(const HXLD&amp; <a href="#BeadContour"><i>BeadContour</i></a>, Hlong <a href="#TargetThickness"><i>TargetThickness</i></a>, Hlong <a href="#ThicknessTolerance"><i>ThicknessTolerance</i></a>, Hlong <a href="#PositionTolerance"><i>PositionTolerance</i></a>, const wchar_t* <a href="#Polarity"><i>Polarity</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, Hlong <a href="#GenParamValue"><i>GenParamValue</i></a>)  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>CreateBeadInspectionModel</b>(<a href="HObject.html">HObject</a> <a href="#BeadContour"><i>beadContour</i></a>, <a href="HTuple.html">HTuple</a> <a href="#TargetThickness"><i>targetThickness</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ThicknessTolerance"><i>thicknessTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#PositionTolerance"><i>positionTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Polarity"><i>polarity</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>, out <a href="HTuple.html">HTuple</a> <a href="#BeadInspectionModel"><i>beadInspectionModel</i></a>)</code></p>
<p>
<code>public <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>(<a href="HXLD.html">HXLD</a> <a href="#BeadContour"><i>beadContour</i></a>, <a href="HTuple.html">HTuple</a> <a href="#TargetThickness"><i>targetThickness</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ThicknessTolerance"><i>thicknessTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#PositionTolerance"><i>positionTolerance</i></a>, string <a href="#Polarity"><i>polarity</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>public <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>(<a href="HXLD.html">HXLD</a> <a href="#BeadContour"><i>beadContour</i></a>, int <a href="#TargetThickness"><i>targetThickness</i></a>, int <a href="#ThicknessTolerance"><i>thicknessTolerance</i></a>, int <a href="#PositionTolerance"><i>positionTolerance</i></a>, string <a href="#Polarity"><i>polarity</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, int <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>.<b>CreateBeadInspectionModel</b>(<a href="HXLD.html">HXLD</a> <a href="#BeadContour"><i>beadContour</i></a>, <a href="HTuple.html">HTuple</a> <a href="#TargetThickness"><i>targetThickness</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ThicknessTolerance"><i>thicknessTolerance</i></a>, <a href="HTuple.html">HTuple</a> <a href="#PositionTolerance"><i>positionTolerance</i></a>, string <a href="#Polarity"><i>polarity</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code>void <a href="HBeadInspectionModel.html">HBeadInspectionModel</a>.<b>CreateBeadInspectionModel</b>(<a href="HXLD.html">HXLD</a> <a href="#BeadContour"><i>beadContour</i></a>, int <a href="#TargetThickness"><i>targetThickness</i></a>, int <a href="#ThicknessTolerance"><i>thicknessTolerance</i></a>, int <a href="#PositionTolerance"><i>positionTolerance</i></a>, string <a href="#Polarity"><i>polarity</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, int <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>create_bead_inspection_model</b>(<a href="#BeadContour"><i>bead_contour</i></a>: HObject, <a href="#TargetThickness"><i>target_thickness</i></a>: Union[int, float], <a href="#ThicknessTolerance"><i>thickness_tolerance</i></a>: Union[int, float], <a href="#PositionTolerance"><i>position_tolerance</i></a>: Union[int, float], <a href="#Polarity"><i>polarity</i></a>: str, <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[int, float, str]]) -&gt; HHandle</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p><code><span data-if="hdevelop" style="display:inline">create_bead_inspection_model</span><span data-if="c" style="display:none">create_bead_inspection_model</span><span data-if="cpp" style="display:none">CreateBeadInspectionModel</span><span data-if="com" style="display:none">CreateBeadInspectionModel</span><span data-if="dotnet" style="display:none">CreateBeadInspectionModel</span><span data-if="python" style="display:none">create_bead_inspection_model</span></code> creates a model to
inspect beads or adhesive in images.
</p>
<p><b>The basic principle of bead inspection</b>
</p>
<p>The bead inspection operators enable the user to define a reference contour
that indicates the position and shape of a bead or adhesive on a certain
product. Images of such products can then be inspected to verify that a
bead or adhesive exists at the positions defined by the contour and that it
is of acceptable thickness. The images must already be aligned with the
given contour.
</p>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">create_bead_inspection_model</span><span data-if="c" style="display:none">create_bead_inspection_model</span><span data-if="cpp" style="display:none">CreateBeadInspectionModel</span><span data-if="com" style="display:none">CreateBeadInspectionModel</span><span data-if="dotnet" style="display:none">CreateBeadInspectionModel</span><span data-if="python" style="display:none">create_bead_inspection_model</span></code> returns a handle to the
bead inspection model in <a href="#BeadInspectionModel"><i><code><span data-if="hdevelop" style="display:inline">BeadInspectionModel</span><span data-if="c" style="display:none">BeadInspectionModel</span><span data-if="cpp" style="display:none">BeadInspectionModel</span><span data-if="com" style="display:none">BeadInspectionModel</span><span data-if="dotnet" style="display:none">beadInspectionModel</span><span data-if="python" style="display:none">bead_inspection_model</span></code></i></a>, which can later be
used to perform other operations related to bead inspection. These
operations include the modification of the bead inspection model parameters
and performing the inspection on input images as defined by the model.
</p>
<p><b>Providing the model contour</b>
</p>
<p>In order to inspect beads, a contour serving as the model for the bead must
be provided in <a href="#BeadContour"><i><code><span data-if="hdevelop" style="display:inline">BeadContour</span><span data-if="c" style="display:none">BeadContour</span><span data-if="cpp" style="display:none">BeadContour</span><span data-if="com" style="display:none">BeadContour</span><span data-if="dotnet" style="display:none">beadContour</span><span data-if="python" style="display:none">bead_contour</span></code></i></a>.
Such a contour can be generated, e.g., by using the
operators <a href="gen_contour_polygon_xld.html"><code><span data-if="hdevelop" style="display:inline">gen_contour_polygon_xld</span><span data-if="c" style="display:none">gen_contour_polygon_xld</span><span data-if="cpp" style="display:none">GenContourPolygonXld</span><span data-if="com" style="display:none">GenContourPolygonXld</span><span data-if="dotnet" style="display:none">GenContourPolygonXld</span><span data-if="python" style="display:none">gen_contour_polygon_xld</span></code></a> or <a href="gen_contour_nurbs_xld.html"><code><span data-if="hdevelop" style="display:inline">gen_contour_nurbs_xld</span><span data-if="c" style="display:none">gen_contour_nurbs_xld</span><span data-if="cpp" style="display:none">GenContourNurbsXld</span><span data-if="com" style="display:none">GenContourNurbsXld</span><span data-if="dotnet" style="display:none">GenContourNurbsXld</span><span data-if="python" style="display:none">gen_contour_nurbs_xld</span></code></a>.
The contour must be defined to be aligned to the beads in the input images.
To achieve this, the user can draw the XLD directly on a reference image
in the graphics window (with <a href="draw_polygon.html"><code><span data-if="hdevelop" style="display:inline">draw_polygon</span><span data-if="c" style="display:none">draw_polygon</span><span data-if="cpp" style="display:none">DrawPolygon</span><span data-if="com" style="display:none">DrawPolygon</span><span data-if="dotnet" style="display:none">DrawPolygon</span><span data-if="python" style="display:none">draw_polygon</span></code></a> or
<a href="draw_nurbs.html"><code><span data-if="hdevelop" style="display:inline">draw_nurbs</span><span data-if="c" style="display:none">draw_nurbs</span><span data-if="cpp" style="display:none">DrawNurbs</span><span data-if="com" style="display:none">DrawNurbs</span><span data-if="dotnet" style="display:none">DrawNurbs</span><span data-if="python" style="display:none">draw_nurbs</span></code></a>).
To inspect beads consisting of multiple parts, multiple models must be
created.
</p>
<p><b>Mandatory parameters</b>
</p>
<div style="text-align:center;" class="figure">
<table style="margin-left:auto;margin-right:auto">
<tr><td><svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="744.09448" height="250" id="svg2" version="1.1" inkscape:version="0.48.4 r9939" sodipodi:docname="create_bead_inspection_model-explain_1.svg">
  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.2768457" inkscape:cx="272.13599" inkscape:cy="143.04834" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:window-width="1920" inkscape:window-height="1018" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1">
    <sodipodi:guide id="guide4688" position="358,808" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide id="guide3176" position="-9,505" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide id="guide4242" position="290,615" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="607,454" id="guide7646"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="202.84362,20" id="guide8910"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="-291.34296,179.34822" id="guide5018"></sodipodi:guide>
  </sodipodi:namedview>
  <defs id="defs4">
    <linearGradient id="linearGradient5022" osb:paint="solid">
      <stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop5024"></stop>
    </linearGradient>
    <marker style="overflow:visible" id="TriangleInM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM">
      <path transform="scale(-0.4,-0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path5602" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path5611" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect4694" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4653" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881" inkscape:connector-curvature="0"></path>
    </marker>
    <marker inkscape:stockid="DistanceStart" orient="auto" refY="0" refX="0" id="DistanceStart" style="overflow:visible">
      <g id="g2300">
        <path id="path2306" d="M 0,0 2,0" style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" inkscape:connector-curvature="0"></path>
        <path id="path2302" d="M 0,0 13,4 9,0 13,-4 0,0 z" style="fill:#000000;fill-rule:evenodd;stroke:none" inkscape:connector-curvature="0"></path>
        <path id="path2304" d="M 0,-4 0,40" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" inkscape:connector-curvature="0"></path>
      </g>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3771" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3767" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect2995" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect2991" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3767-1" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3771-4" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4653-9" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4694-8" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-1" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-7" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3039" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3041" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-8" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-2" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3083" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3085" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-5" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-1" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3118" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3120" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-7" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-15" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-27" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3153" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3155" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-6" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3153y" refX="0" refY="0" orient="auto" inkscape:stockid="marker3153y">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path6568" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="SquareM4" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM4">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path6571" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb-4" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395-2"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4-3" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398-2"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-2" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX-1" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390-6"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA-8" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393-5"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-76" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMb-9" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395-27"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4-9" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398-5"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX-3" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390-1"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA-2" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393-3"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-3" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMXh" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMXh">
      <path transform="scale(0.4,0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7750" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMAz" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMAz">
      <path transform="scale(-0.4,-0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7753" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMXM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMXM">
      <path transform="scale(0.4,0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8014" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMAF" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMAF">
      <path transform="scale(-0.4,-0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8017" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb5" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb5">
      <path transform="scale(0.4,0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8286" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4l" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4l">
      <path transform="scale(-0.4,-0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8289" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMbL" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMbL">
      <path transform="scale(0.4,0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8566" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4Z" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4Z">
      <path transform="scale(-0.4,-0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8569" inkscape:connector-curvature="0"></path>
    </marker>
  </defs>
  <metadata id="metadata7">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"></dc:type>
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" transform="translate(0,-802.36218)">
    <path inkscape:connector-curvature="0" id="path3180" d="m 115.97276,883.33494 0,111.51186 562.94407,-35.58887 0,-28.47113 z" style="fill:#000000;fill-opacity:0.50196078;stroke:#000000;stroke-width:0.94551629px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.50196078"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 204.95497,917.99381 0,68.52222" inkscape:path-effect="#path-effect3802-4" id="path3800-8" d="m 204.95497,917.99381 0,68.52222" style="fill:none;stroke:#062d64;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutMXh);marker-end:url(#TriangleInMAz)"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 205.26498,892.70645 c 0.79377,4.08022 0,20.40293 0,20.40293" inkscape:path-effect="#path-effect3802-4-4" id="path3800-8-5" d="m 205.26498,892.70645 0,20.40293" style="fill:none;stroke:#f28d26;stroke-width:1.72159994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutMbL);marker-end:url(#TriangleInM4Z)" sodipodi:nodetypes="cc"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 548.12303,896.19312 0,68.52222" inkscape:path-effect="#path-effect3802-4-3" id="path3800-8-4" d="m 548.12303,896.19312 0,68.52222" style="fill:none;stroke:#062d64;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutMXM);marker-end:url(#TriangleInMAF)"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 557.21222,895.66741 c 0.7906,4.21197 0,21.06175 0,21.06175" inkscape:path-effect="#path-effect3802-4-4-4" id="path3800-8-5-1" d="m 557.21222,895.66741 0,21.06175" style="fill:none;stroke:#f28d26;stroke-width:1.74567652;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleOutMb5);marker-end:url(#TriangleInM4l)" sodipodi:nodetypes="cc"></path>
    <text xml:space="preserve" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans" x="193" y="1028.3622" id="text7626" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan7628" x="193" y="1028.3622" style="font-size:12px;font-family:Sans;-inkscape-font-specification:Sans">TargetThickness</tspan><tspan sodipodi:role="line" x="193" y="1043.3622" id="tspan7630"></tspan></text>
    <text xml:space="preserve" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" x="467" y="1028.3622" id="text7632" sodipodi:linespacing="125%"><tspan sodipodi:role="line" id="tspan7634" x="467" y="1028.3622" style="font-size:12px">ThicknessTolerance</tspan><tspan sodipodi:role="line" x="467" y="1043.3622" id="tspan7636"></tspan></text>
    <flowRoot xml:space="preserve" id="flowRoot7638" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" transform="translate(50,434)"><flowRegion id="flowRegion7640"><rect id="rect7642" width="0" height="250" x="592" y="50.362183"></rect></flowRegion><flowPara id="flowPara7644"></flowPara></flowRoot>    <path style="fill:none;stroke:#062d64;stroke-width:2.3021729;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 129.325,1026.3622 50.35,0" id="path7648" inkscape:connector-curvature="0"></path>
    <path style="fill:none;stroke:#f28d26;stroke-width:2.21359444;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 408.20534,1025.5 46.55,0" id="path7648-1" inkscape:connector-curvature="0"></path>
    <path style="fill:none;stroke:#00ff00;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 367.575,857.10851 7.08924,13.29233 10.63386,-19.05234" id="path4017" inkscape:connector-curvature="0"></path>
    <path sodipodi:type="arc" style="fill:none;stroke:#ff0000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="path5020" sodipodi:cx="161.72667" sodipodi:cy="27.968473" sodipodi:rx="9.7897501" sodipodi:ry="9.7897501" d="m 171.51642,27.968473 a 9.7897501,9.7897501 0 1 1 -19.5795,0 9.7897501,9.7897501 0 1 1 19.5795,0 z" transform="translate(0.78317998,833.68938)"></path>
    <path sodipodi:type="arc" style="fill:none;stroke:#ff0000;stroke-width:4;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" id="path5020-7" sodipodi:cx="161.72667" sodipodi:cy="27.968473" sodipodi:rx="9.7897501" sodipodi:ry="9.7897501" d="m 171.51642,27.968473 a 9.7897501,9.7897501 0 1 1 -19.5795,0 9.7897501,9.7897501 0 1 1 19.5795,0 z" transform="translate(451.50326,834.26231)"></path>
  </g>
</svg></td></tr>
<tr><td align="center">
        (
      1)
    </td></tr>
<tr><td><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="744.09448" height="250" id="svg2" version="1.1" inkscape:version="0.48.4 r9939" sodipodi:docname="create_bead_inspection_model-explain_2.svg">
  <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="1.5961882" inkscape:cx="364.6582" inkscape:cy="152.33252" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" showguides="true" inkscape:guide-bbox="true" inkscape:window-width="1920" inkscape:window-height="1018" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1">
    <sodipodi:guide id="guide4688" position="358,808" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide id="guide3176" position="-9,505" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide id="guide4242" position="290,615" orientation="0,1"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="607,454" id="guide7646"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="19.421269,20" id="guide8908"></sodipodi:guide>
    <sodipodi:guide orientation="0,1" position="424.13545,203.61008" id="guide3267"></sodipodi:guide>
  </sodipodi:namedview>
  <defs id="defs4">
    <marker style="overflow:visible" id="TriangleInM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM">
      <path transform="scale(-0.4,-0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path5602" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path5611" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect4694" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4653" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881" inkscape:connector-curvature="0"></path>
    </marker>
    <marker inkscape:stockid="DistanceStart" orient="auto" refY="0" refX="0" id="DistanceStart" style="overflow:visible">
      <g id="g2300">
        <path id="path2306" d="M 0,0 2,0" style="fill:none;stroke:#ffffff;stroke-width:1.14999998;stroke-linecap:square" inkscape:connector-curvature="0"></path>
        <path id="path2302" d="M 0,0 13,4 9,0 13,-4 0,0 z" style="fill:#000000;fill-rule:evenodd;stroke:none" inkscape:connector-curvature="0"></path>
        <path id="path2304" d="M 0,-4 0,40" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:square" inkscape:connector-curvature="0"></path>
      </g>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3771" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3767" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect2995" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect2991" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3767-1" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect3771-4" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4653-9" effect="spiro"></inkscape:path-effect>
    <inkscape:path-effect is_visible="true" id="path-effect4694-8" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-1" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-7" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3039" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3041" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-8" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-2" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3083" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3085" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-5" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-1" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3118" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3120" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-7" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="SquareM-15" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3881-27" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3153" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM">
      <path transform="scale(0.4,0.4)" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path3155" inkscape:connector-curvature="0"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-6" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="marker3153y" refX="0" refY="0" orient="auto" inkscape:stockid="marker3153y">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path6568" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="SquareM4" refX="0" refY="0" orient="auto" inkscape:stockid="SquareM4">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="M -5,-5 -5,5 5,5 5,-5 -5,-5 z" id="path6571" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb-4" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395-2"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4-3" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398-2"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-2" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX-1" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390-6"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA-8" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393-5"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-76" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMb-9" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7395-27"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4-9" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#ffbd00;fill-rule:evenodd;stroke:#ffbd00;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7398-5"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-4-4" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMX-3" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMX">
      <path inkscape:connector-curvature="0" transform="scale(0.4,0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6390-1"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMA-2" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMA">
      <path inkscape:connector-curvature="0" transform="scale(-0.4,-0.4)" style="fill:#0000ff;fill-rule:evenodd;stroke:#0000ff;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path6393-3"></path>
    </marker>
    <inkscape:path-effect is_visible="true" id="path-effect3802-4-3" effect="spiro"></inkscape:path-effect>
    <marker style="overflow:visible" id="TriangleOutMXh" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMXh">
      <path transform="scale(0.4,0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7750" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMAz" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMAz">
      <path transform="scale(-0.4,-0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path7753" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMXM" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMXM">
      <path transform="scale(0.4,0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8014" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInMAF" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInMAF">
      <path transform="scale(-0.4,-0.4)" style="fill:#062d64;fill-rule:evenodd;stroke:#062d64;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8017" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMb5" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMb5">
      <path transform="scale(0.4,0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8286" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4l" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4l">
      <path transform="scale(-0.4,-0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8289" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleOutMbL" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleOutMbL">
      <path transform="scale(0.4,0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8566" inkscape:connector-curvature="0"></path>
    </marker>
    <marker style="overflow:visible" id="TriangleInM4Z" refX="0" refY="0" orient="auto" inkscape:stockid="TriangleInM4Z">
      <path transform="scale(-0.4,-0.4)" style="fill:#f28d26;fill-rule:evenodd;stroke:#f28d26;stroke-width:1pt" d="m 5.77,0 -8.65,5 0,-10 8.65,5 z" id="path8569" inkscape:connector-curvature="0"></path>
    </marker>
  </defs>
  <metadata id="metadata7">
    <rdf:RDF>
      <cc:Work rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"></dc:type>
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" transform="translate(0,-802.36218)">
    <path sodipodi:nodetypes="csscsc" inkscape:connector-curvature="0" inkscape:original-d="m 123,960.36218 c 0,0 67.23233,-4.62156 102,-5 31.46946,-0.34254 52.4467,-37.4541 83,-45 77.34885,-19.10323 229,9 229,9 0,0 43.11104,30.18615 68,37 26.70215,7.31025 83,3 83,3" inkscape:path-effect="#path-effect3771" id="path3769" d="m 123,960.36218 c 33.36566,9.26541 69.7005,7.48429 102,-5 29.38496,-11.35778 54.79548,-30.96505 83,-45 35.66992,-17.74984 75.84002,-26.36336 115.65148,-24.79872 39.81145,1.56464 79.18165,13.30421 113.34852,33.79872 19.54212,17.17921 42.96156,29.92214 68,37 26.89689,7.6032 55.62438,8.64154 83,3" style="fill:none;stroke:#000000;stroke-width:60;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.50196078;stroke-dasharray:none"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 133,959.36218 558,0" inkscape:path-effect="#path-effect3767" id="path3765" d="m 133,959.36218 558,0" style="fill:none;stroke:#009600;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"></path>
    <path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" inkscape:original-d="m 132,921.36218 c 188.02963,-20.29631 379.78057,-276.82668 558,0" inkscape:path-effect="#path-effect3767-1" id="path3765-7" d="m 132,921.36218 558,0" style="fill:none;stroke:#f28d26;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"></path>
    <text sodipodi:linespacing="125%" id="text3794" y="946.36218" x="5" style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" xml:space="preserve"><tspan id="tspan3798" y="946.36218" x="5" sodipodi:role="line">PositionTolerance</tspan></text>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 108,923.36218 0,36" inkscape:path-effect="#path-effect3802" id="path3800" d="m 108,923.36218 0,36" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#SquareM);marker-end:url(#SquareM)"></path>
    <path sodipodi:nodetypes="csscsc" inkscape:connector-curvature="0" inkscape:original-d="m 122.5,959.92488 c 0,0 67.23233,-4.62156 102,-5 31.46946,-0.34254 52.4467,-37.4541 83,-44.99999 77.34885,-19.10323 229,9 229,9 0,0 43.11104,30.18614 68,36.99999 26.70215,7.31025 83,3 83,3" inkscape:path-effect="#path-effect3771-4" id="path3769-0" d="m 122.5,959.92488 c 33.36566,9.26541 69.7005,7.48429 102,-5 29.38496,-11.35777 54.79548,-30.96504 83,-44.99999 35.66993,-17.74983 75.84002,-26.36336 115.65148,-24.79871 39.81145,1.56464 79.18165,13.3042 113.34852,33.79871 19.54212,17.17921 42.96156,29.92213 68,36.99999 26.89689,7.6032 55.62438,8.64154 83,3" style="fill:none;stroke:#062d64;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8, 2;stroke-dashoffset:0"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 288,921.36218 0,-79" inkscape:path-effect="#path-effect4653" id="path4651" d="m 288,921.36218 0,-79" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 1;stroke-dashoffset:0"></path>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 539,915.86218 0,-79" inkscape:path-effect="#path-effect4653-9" id="path4651-4" d="m 539,915.86218 0,-79" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:6, 1;stroke-dashoffset:0"></path>
    <text sodipodi:linespacing="125%" id="text4680" y="1030.3622" x="194" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" xml:space="preserve"><tspan y="1030.3622" x="194" id="tspan4682" sodipodi:role="line" style="font-size:12px">BeadInspectionModel</tspan></text>
    <path inkscape:connector-curvature="0" inkscape:original-d="m 130,1026.3622 52,0" inkscape:path-effect="#path-effect4694" id="path4692" d="m 130,1026.3622 52,0" style="fill:none;stroke:#009600;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"></path>
    <flowRoot xml:space="preserve" id="flowRoot7638" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" transform="translate(50,788)"><flowRegion id="flowRegion7640"><rect id="rect7642" width="0" height="250" x="592" y="50.362183"></rect></flowRegion><flowPara id="flowPara7644"></flowPara></flowRoot>    <text xml:space="preserve" style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" x="204.23657" y="57.66679" id="text3099" sodipodi:linespacing="125%" transform="translate(0,802.36218)"><tspan sodipodi:role="line" id="tspan3101"></tspan></text>
    <text xml:space="preserve" style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans" x="573.24066" y="40.751492" id="text3127" sodipodi:linespacing="125%" transform="translate(0,802.36218)"><tspan sodipodi:role="line" id="tspan3129" x="573.24066" y="40.751492">     </tspan></text>
    <g id="g3257" transform="translate(399.05209,825.97212)">
      <path id="path3259" d="m 21.57874,11.799212 c 0,5.42126 -4.393701,9.814961 -9.779528,9.814961 -5.4212593,0 -9.8149601,-4.393701 -9.8149601,-9.814961 0,-5.3858263 4.3937008,-9.779527 9.8149601,-9.779527 5.385827,0 9.779528,4.3937007 9.779528,9.779527 z" style="fill:none;stroke:#ff0000;stroke-width:3.96850395px;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" inkscape:connector-curvature="0"></path>
    </g>
    <path style="fill:none;stroke:#00ff00;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 189.13621,833.39863 7.08924,13.29233 10.63386,-19.05234" id="path4017" inkscape:connector-curvature="0"></path>
    <path style="fill:none;stroke:#00ff00;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" d="m 617.94368,832.9143 7.08924,13.29233 10.63386,-19.05234" id="path4017-1" inkscape:connector-curvature="0"></path>
  </g>
</svg></td></tr>
<tr><td align="center">
        (
      2)
    </td></tr>
</table>
<div style="margin-bottom:30px;text-align:center;" class="caption">
The mandatory parameters for a bead inspection model
</div>
</div>
<p>In order to inspect beads, the following parameters must be set:
</p>
<dl class="generic">

<p>- <a href="#TargetThickness"><i><code><span data-if="hdevelop" style="display:inline">TargetThickness</span><span data-if="c" style="display:none">TargetThickness</span><span data-if="cpp" style="display:none">TargetThickness</span><span data-if="com" style="display:none">TargetThickness</span><span data-if="dotnet" style="display:none">targetThickness</span><span data-if="python" style="display:none">target_thickness</span></code></i></a>: defines the optimal bead
thickness in pixels.
</p>
<p>- <a href="#ThicknessTolerance"><i><code><span data-if="hdevelop" style="display:inline">ThicknessTolerance</span><span data-if="c" style="display:none">ThicknessTolerance</span><span data-if="cpp" style="display:none">ThicknessTolerance</span><span data-if="com" style="display:none">ThicknessTolerance</span><span data-if="dotnet" style="display:none">thicknessTolerance</span><span data-if="python" style="display:none">thickness_tolerance</span></code></i></a>: defines the tolerance
to the bead's thickness in pixels. The bead is accepted if its
thickness is within the range:
</p>
<p>[<a href="#TargetThickness"><i><code><span data-if="hdevelop" style="display:inline">TargetThickness</span><span data-if="c" style="display:none">TargetThickness</span><span data-if="cpp" style="display:none">TargetThickness</span><span data-if="com" style="display:none">TargetThickness</span><span data-if="dotnet" style="display:none">targetThickness</span><span data-if="python" style="display:none">target_thickness</span></code></i></a>-<a href="#ThicknessTolerance"><i><code><span data-if="hdevelop" style="display:inline">ThicknessTolerance</span><span data-if="c" style="display:none">ThicknessTolerance</span><span data-if="cpp" style="display:none">ThicknessTolerance</span><span data-if="com" style="display:none">ThicknessTolerance</span><span data-if="dotnet" style="display:none">thicknessTolerance</span><span data-if="python" style="display:none">thickness_tolerance</span></code></i></a>,
<a href="#TargetThickness"><i><code><span data-if="hdevelop" style="display:inline">TargetThickness</span><span data-if="c" style="display:none">TargetThickness</span><span data-if="cpp" style="display:none">TargetThickness</span><span data-if="com" style="display:none">TargetThickness</span><span data-if="dotnet" style="display:none">targetThickness</span><span data-if="python" style="display:none">target_thickness</span></code></i></a>+<a href="#ThicknessTolerance"><i><code><span data-if="hdevelop" style="display:inline">ThicknessTolerance</span><span data-if="c" style="display:none">ThicknessTolerance</span><span data-if="cpp" style="display:none">ThicknessTolerance</span><span data-if="com" style="display:none">ThicknessTolerance</span><span data-if="dotnet" style="display:none">thicknessTolerance</span><span data-if="python" style="display:none">thickness_tolerance</span></code></i></a>]
</p>
<p>- <a href="#PositionTolerance"><i><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></i></a>: defines the tolerance
to the bead's position in pixels. The 'bead position' is the center of
the detected bead. The bead is accepted if the distance between its center
and the contour's position is less than the <a href="#PositionTolerance"><i><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></i></a>.
</p>
<p>- <a href="#Polarity"><i><code><span data-if="hdevelop" style="display:inline">Polarity</span><span data-if="c" style="display:none">Polarity</span><span data-if="cpp" style="display:none">Polarity</span><span data-if="com" style="display:none">Polarity</span><span data-if="dotnet" style="display:none">polarity</span><span data-if="python" style="display:none">polarity</span></code></i></a>: defines the polarity of the bead in
the images to inspect. <i><span data-if="hdevelop" style="display:inline">'light'</span><span data-if="c" style="display:none">"light"</span><span data-if="cpp" style="display:none">"light"</span><span data-if="com" style="display:none">"light"</span><span data-if="dotnet" style="display:none">"light"</span><span data-if="python" style="display:none">"light"</span></i> if the bead is lighter than its
background, <i><span data-if="hdevelop" style="display:inline">'dark'</span><span data-if="c" style="display:none">"dark"</span><span data-if="cpp" style="display:none">"dark"</span><span data-if="com" style="display:none">"dark"</span><span data-if="dotnet" style="display:none">"dark"</span><span data-if="python" style="display:none">"dark"</span></i> otherwise.
</p>
</dl>
<p><b>Edge extraction parameters</b>
</p>
<p>Bead inspection relies on edge extraction to identify the edges of beads.
Accordingly, correct initialization of the <a href="measure_pos.html"><code><span data-if="hdevelop" style="display:inline">measure_pos</span><span data-if="c" style="display:none">measure_pos</span><span data-if="cpp" style="display:none">MeasurePos</span><span data-if="com" style="display:none">MeasurePos</span><span data-if="dotnet" style="display:none">MeasurePos</span><span data-if="python" style="display:none">measure_pos</span></code></a>
parameters helps improve bead inspection results.
</p>
<p>The following parameters can be set for <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>.
</p>
<dl class="generic">

<dt><b><i><span data-if="hdevelop" style="display:inline">'sigma'</span><span data-if="c" style="display:none">"sigma"</span><span data-if="cpp" style="display:none">"sigma"</span><span data-if="com" style="display:none">"sigma"</span><span data-if="dotnet" style="display:none">"sigma"</span><span data-if="python" style="display:none">"sigma"</span></i>:</b></dt>
<dd>
<p>

Sets the standard deviation of the Gaussian smoothing kernel. The value
of <i><span data-if="hdevelop" style="display:inline">'sigma'</span><span data-if="c" style="display:none">"sigma"</span><span data-if="cpp" style="display:none">"sigma"</span><span data-if="com" style="display:none">"sigma"</span><span data-if="dotnet" style="display:none">"sigma"</span><span data-if="python" style="display:none">"sigma"</span></i> depends on the quality of the images to be
inspected, namely on the amount of noise.</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>2.0</i>
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></i>:</b></dt>
<dd>
<p>

Sets the minimum edge amplitude to be extracted. Setting a higher
value for <i><span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></i> helps to avoid the extraction of
noise edges and select salient edges. <i><span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></i> cannot be less
than <i>1</i>.</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>30</i>
</p>
</dd>
</dl>
<p>
The Measure Assistant can be used to find suitable values for these two
parameters.
</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<p>This operator returns a handle. Note that the state of an instance of this handle type may be changed by specific operators even though the handle is used as an input parameter by those operators.</p>
<p>This operator modifies the state of the following input parameter:</p>
<ul><li><a href="#BeadInspectionModel"><span data-if="hdevelop" style="display:inline">BeadInspectionModel</span><span data-if="c" style="display:none">BeadInspectionModel</span><span data-if="cpp" style="display:none">BeadInspectionModel</span><span data-if="com" style="display:none">BeadInspectionModel</span><span data-if="dotnet" style="display:none">beadInspectionModel</span><span data-if="python" style="display:none">bead_inspection_model</span></a></li></ul>
<p>During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.</p>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="BeadContour" class="parname"><b><code><span data-if="hdevelop" style="display:inline">BeadContour</span><span data-if="c" style="display:none">BeadContour</span><span data-if="cpp" style="display:none">BeadContour</span><span data-if="com" style="display:none">BeadContour</span><span data-if="dotnet" style="display:none">beadContour</span><span data-if="python" style="display:none">bead_contour</span></code></b> (input_object)  </span><span>xld <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HXLD.html">HXLD</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HXLD.html">HXLD</a></span><span data-if="c" style="display:none">Hobject</span></span>
</div>
<p class="pardesc">XLD contour specifying the expected bead's shape and
position.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="TargetThickness" class="parname"><b><code><span data-if="hdevelop" style="display:inline">TargetThickness</span><span data-if="c" style="display:none">TargetThickness</span><span data-if="cpp" style="display:none">TargetThickness</span><span data-if="com" style="display:none">TargetThickness</span><span data-if="dotnet" style="display:none">targetThickness</span><span data-if="python" style="display:none">target_thickness</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Optimal bead thickness.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>50</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>5
          ≤
        
    <span data-if="hdevelop" style="display:inline">TargetThickness</span>
    <span data-if="c" style="display:none">TargetThickness</span>
    <span data-if="cpp" style="display:none">TargetThickness</span>
    <span data-if="com" style="display:none">TargetThickness</span>
    <span data-if="dotnet" style="display:none">targetThickness</span>
    <span data-if="python" style="display:none">target_thickness</span>
    </code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="ThicknessTolerance" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ThicknessTolerance</span><span data-if="c" style="display:none">ThicknessTolerance</span><span data-if="cpp" style="display:none">ThicknessTolerance</span><span data-if="com" style="display:none">ThicknessTolerance</span><span data-if="dotnet" style="display:none">thicknessTolerance</span><span data-if="python" style="display:none">thickness_tolerance</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Tolerance of bead's thickness with respect to
<a href="#TargetThickness"><i><code><span data-if="hdevelop" style="display:inline">TargetThickness</span><span data-if="c" style="display:none">TargetThickness</span><span data-if="cpp" style="display:none">TargetThickness</span><span data-if="com" style="display:none">TargetThickness</span><span data-if="dotnet" style="display:none">targetThickness</span><span data-if="python" style="display:none">target_thickness</span></code></i></a>.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>15</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">ThicknessTolerance</span>
    <span data-if="c" style="display:none">ThicknessTolerance</span>
    <span data-if="cpp" style="display:none">ThicknessTolerance</span>
    <span data-if="com" style="display:none">ThicknessTolerance</span>
    <span data-if="dotnet" style="display:none">thicknessTolerance</span>
    <span data-if="python" style="display:none">thickness_tolerance</span>
    </code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="PositionTolerance" class="parname"><b><code><span data-if="hdevelop" style="display:inline">PositionTolerance</span><span data-if="c" style="display:none">PositionTolerance</span><span data-if="cpp" style="display:none">PositionTolerance</span><span data-if="com" style="display:none">PositionTolerance</span><span data-if="dotnet" style="display:none">positionTolerance</span><span data-if="python" style="display:none">position_tolerance</span></code></b> (input_control)  </span><span>integer <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Union[int, float]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Tolerance of the bead's center position.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>15</p>
<p class="pardesc"><span class="parcat">Value range:
      </span><code>0
          ≤
        
    <span data-if="hdevelop" style="display:inline">PositionTolerance</span>
    <span data-if="c" style="display:none">PositionTolerance</span>
    <span data-if="cpp" style="display:none">PositionTolerance</span>
    <span data-if="com" style="display:none">PositionTolerance</span>
    <span data-if="dotnet" style="display:none">positionTolerance</span>
    <span data-if="python" style="display:none">position_tolerance</span>
    </code></p>
</div>
  <div class="par">
<div class="parhead">
<span id="Polarity" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Polarity</span><span data-if="c" style="display:none">Polarity</span><span data-if="cpp" style="display:none">Polarity</span><span data-if="com" style="display:none">Polarity</span><span data-if="dotnet" style="display:none">polarity</span><span data-if="python" style="display:none">polarity</span></code></b> (input_control)  </span><span>string <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">str</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">The bead's polarity.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>
    <span data-if="hdevelop" style="display:inline">'light'</span>
    <span data-if="c" style="display:none">"light"</span>
    <span data-if="cpp" style="display:none">"light"</span>
    <span data-if="com" style="display:none">"light"</span>
    <span data-if="dotnet" style="display:none">"light"</span>
    <span data-if="python" style="display:none">"light"</span>
</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'dark'</span><span data-if="c" style="display:none">"dark"</span><span data-if="cpp" style="display:none">"dark"</span><span data-if="com" style="display:none">"dark"</span><span data-if="dotnet" style="display:none">"dark"</span><span data-if="python" style="display:none">"dark"</span>, <span data-if="hdevelop" style="display:inline">'light'</span><span data-if="c" style="display:none">"light"</span><span data-if="cpp" style="display:none">"light"</span><span data-if="com" style="display:none">"light"</span><span data-if="dotnet" style="display:none">"light"</span><span data-if="python" style="display:none">"light"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>attribute.name(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Names of the generic parameters that can be
adjusted for the bead inspection model.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'sigma'</span><span data-if="c" style="display:none">"sigma"</span><span data-if="cpp" style="display:none">"sigma"</span><span data-if="com" style="display:none">"sigma"</span><span data-if="dotnet" style="display:none">"sigma"</span><span data-if="python" style="display:none">"sigma"</span>, <span data-if="hdevelop" style="display:inline">'threshold'</span><span data-if="c" style="display:none">"threshold"</span><span data-if="cpp" style="display:none">"threshold"</span><span data-if="com" style="display:none">"threshold"</span><span data-if="dotnet" style="display:none">"threshold"</span><span data-if="python" style="display:none">"threshold"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>attribute.value(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (integer / </span><span data-if="hdevelop" style="display:inline">real / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>int</i> / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>Hlong</i> / </span><span data-if="cpp" style="display:none">double / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>Hlong</i> / </span><span data-if="c" style="display:none">double / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Values of the generic parameters that can be
adjusted for the bead inspection model.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.6, 1.0, 4.0, 5.0, 10.0, 50.0</p>
</div>
  <div class="par">
<div class="parhead">
<span id="BeadInspectionModel" class="parname"><b><code><span data-if="hdevelop" style="display:inline">BeadInspectionModel</span><span data-if="c" style="display:none">BeadInspectionModel</span><span data-if="cpp" style="display:none">BeadInspectionModel</span><span data-if="com" style="display:none">BeadInspectionModel</span><span data-if="dotnet" style="display:none">beadInspectionModel</span><span data-if="python" style="display:none">bead_inspection_model</span></code></b> (output_control, state is modified)  </span><span>bead_inspection_model <code>→</code> <span data-if="dotnet" style="display:none"><a href="HBeadInspectionModel.html">HBeadInspectionModel</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle for using and accessing the bead inspection
model.</p>
</div>
<h2 id="sec_example_all">例程 (HDevelop)</h2>
<pre class="example">
* Read the image of the bead to be inspected.
read_image (Image, 'bead/adhesive_bead_01')
* Define the reference path of the adhesive beads.
gen_contour_nurbs_xld (ContourRef, \
                       [610.974,533.443,461.763,393.009,330.106,287.683, \
                        270.129,265.74,265.74,300.849,331.569,376.917, \
                        438.357,489.557,539.294], \
                       [418.581,424.27,439.441,473.574,526.67,574.078, \
                        644.241,708.715,765.604,818.7,866.107,915.411, \
                        966.611,998.848,993.159], \
                       'auto', \
                       [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15], \
                       3, 1, 5)
*
* Create the bead inspection model, identifying the bead's parameters
create_bead_inspection_model (ContourRef, 14, 7, 30, 'dark', [], [], \
                               BeadInspectionModel)
*
* Apply the bead inspection model to the image
apply_bead_inspection_model (Image, LeftContour, RightContour, \
                              ErrorSegment, BeadInspectionModel, \
                              ErrorType)
</pre>
<h2 id="sec_result">结果</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">create_bead_inspection_model</span><span data-if="c" style="display:none">create_bead_inspection_model</span><span data-if="cpp" style="display:none">CreateBeadInspectionModel</span><span data-if="com" style="display:none">CreateBeadInspectionModel</span><span data-if="dotnet" style="display:none">CreateBeadInspectionModel</span><span data-if="python" style="display:none">create_bead_inspection_model</span></code> 返回值 <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
    
if the given parameters are valid and within acceptable range.
Otherwise, an exception will be raised.</p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="gen_contour_nurbs_xld.html"><span data-if="hdevelop" style="display:inline">gen_contour_nurbs_xld</span><span data-if="c" style="display:none">gen_contour_nurbs_xld</span><span data-if="cpp" style="display:none">GenContourNurbsXld</span><span data-if="com" style="display:none">GenContourNurbsXld</span><span data-if="dotnet" style="display:none">GenContourNurbsXld</span><span data-if="python" style="display:none">gen_contour_nurbs_xld</span></a></code>, 
<code><a href="gen_contour_polygon_xld.html"><span data-if="hdevelop" style="display:inline">gen_contour_polygon_xld</span><span data-if="c" style="display:none">gen_contour_polygon_xld</span><span data-if="cpp" style="display:none">GenContourPolygonXld</span><span data-if="com" style="display:none">GenContourPolygonXld</span><span data-if="dotnet" style="display:none">GenContourPolygonXld</span><span data-if="python" style="display:none">gen_contour_polygon_xld</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="apply_bead_inspection_model.html"><span data-if="hdevelop" style="display:inline">apply_bead_inspection_model</span><span data-if="c" style="display:none">apply_bead_inspection_model</span><span data-if="cpp" style="display:none">ApplyBeadInspectionModel</span><span data-if="com" style="display:none">ApplyBeadInspectionModel</span><span data-if="dotnet" style="display:none">ApplyBeadInspectionModel</span><span data-if="python" style="display:none">apply_bead_inspection_model</span></a></code>, 
<code><a href="set_bead_inspection_param.html"><span data-if="hdevelop" style="display:inline">set_bead_inspection_param</span><span data-if="c" style="display:none">set_bead_inspection_param</span><span data-if="cpp" style="display:none">SetBeadInspectionParam</span><span data-if="com" style="display:none">SetBeadInspectionParam</span><span data-if="dotnet" style="display:none">SetBeadInspectionParam</span><span data-if="python" style="display:none">set_bead_inspection_param</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="clear_bead_inspection_model.html"><span data-if="hdevelop" style="display:inline">clear_bead_inspection_model</span><span data-if="c" style="display:none">clear_bead_inspection_model</span><span data-if="cpp" style="display:none">ClearBeadInspectionModel</span><span data-if="com" style="display:none">ClearBeadInspectionModel</span><span data-if="dotnet" style="display:none">ClearBeadInspectionModel</span><span data-if="python" style="display:none">clear_bead_inspection_model</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
2D 度量</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
